/**
 * @file Bench.h
 * @author BadFatCat0919 (543015378@qq.com)
 * @brief 工作台类
 */

#ifndef __BENCH_H__
#define __BENCH_H__

#include "Coord.h"

/**
 * @brief 工作台
 */
class Bench: public Coord {
private:
    int id; // 工作台ID
    int type; // 工作台类型
    int remainFrames; // 剩余生产时间(帧数)
    int materialStatus; // 原材料格状态
    bool productStatus; // 产品格状态
    static int totalNumber; // 工作台总数
    bool buyLock; // 购买锁定
    bool sellLock[7]; // 出售锁定

public:
    void init(int id, char type, int x, int y);
    static void setTotalNumber(int number);
    static const int &getTotalNumber();
    static bool canSell(int material, int bench);
    void refresh(int type, double coord_x, double coord_y, int remainFrames, int materialStatus, bool productStatus);
    int getID();
    bool isReady();
    bool getProductStatus();
    bool isAccept(int materialType);
    bool isNeed(int materialType);
    int getFilledNum();
    int getType();
    int getProductType();
    int getRemainFrames();
    void lockBuy();
    void freeBuy();
    bool isBuyFree();
    void lockSell(int type);
    void freeSell(int type);
    bool isSellFree(int type = 0);
};

#endif // __BENCH_H__
